package com.hioove.core.util;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;

public class FileUtils {
    // 递归找文件
    public static void findClassFiles(File file, List<File> fileCache) {
        Stream.of(file).filter(File::isFile).peek(fileCache::add).count();
        Stream.of(file).filter(File::isDirectory).map(File::listFiles).filter(Objects::nonNull).forEach(files -> {
            Arrays.stream(files).forEach(f -> findClassFiles(f, fileCache));
        });
    }

    public static void findClassFiles(File file, List<File> fileCache, FilenameFilter filter) {

        Stream.of(file).filter(File::isFile).peek(fileCache::add).count();
        Stream.of(file).filter(File::isDirectory).map(file1 -> file1.listFiles(filter)).filter(Objects::nonNull).forEach(files -> {
            Arrays.stream(files).forEach(f -> findClassFiles(f, fileCache));
        });
    }
}
